package com.gofun.framework.core.utils;

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

public class ExceptionResponseUtils {
	
	/**
	 *  @Description	: http status 400, 请求异常
	 *  @return         : void
	 *  @Creation Date  : 2016年4月22日 下午7:46:08 
	 *  @Author         : wangchao
	 */
	public static void badRequest(HttpServletResponse response,String message){
		response(response, HttpServletResponse.SC_BAD_REQUEST, message);
	}
	
	/**
	 *  @Description	: http status 401,一般用于验证身份失败、登录时间过期等建议使用该方法处理
	 *  @return         : void
	 *  @Creation Date  : 2016年4月5日 下午12:43:06 
	 *  @Author         : wangchao
	 */
	public static void unauthorized(HttpServletResponse response,String message){
		response(response, HttpServletResponse.SC_UNAUTHORIZED, message);
	}
	
	/**
	 *  @Description	: http status 403,一般用于访问受权限保护的资源,当访问者无权限时拒绝该请求
	 *  @return         : void
	 *  @Creation Date  : 2016年4月5日 下午12:49:02 
	 *  @Author         : wangchao
	 */
	public static void forbidden(HttpServletResponse response,String message){
		response(response, HttpServletResponse.SC_FORBIDDEN, message);
	}
	
	/**
	 *  @Description	: http status 500,一般用于服务器端处理业务逻辑时触发的异常
	 *  @return         : void
	 *  @Creation Date  : 2016年4月5日 下午12:37:50 
	 *  @Author         : wangchao
	 */
	public static void businessException(HttpServletResponse response,String message){
		response(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
	}
	
	/**
	 *  @Description	: 处理异常状态
	 *  @return         : void
	 *  @Creation Date  : 2016年4月5日 下午12:36:05 
	 *  @Author         : wangchao
	 */
	public static void response(HttpServletResponse response,int status,String message){
		response.setStatus(status);
    	try {
			response.getWriter().write(message);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
}
